// pages/me/me.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    avatar: 'cloud://cloud2012-9gl0qd6g8dc72b1c.636c-cloud2012-9gl0qd6g8dc72b1c-1305426315/00fb2f5b2c9a39a8012034f76e8c48.jpg',
    nickname: '点击登录',
    islogin: false
  },

  /** 点击头像 */
  tapImage(){
    if(!this.data.islogin){
      return;  // 未登录 直接返回
    }
    wx.chooseImage({
      count: 1,
      success: (res)=>{
        let path = res.tempFilePaths[0];
        console.log(path);
        this.setData({avatar: path});
        // 上传文件至云存储
        this.uploadFile(path);
      }
    })
  },

  /**
   * 上传文件至云存储空间
   * @param {string} path 本地文件路径
   */
  uploadFile(path){
    // 通过path，生成一个cloudpath用于保存服务端
    let ext = path.substring(path.lastIndexOf('.'));
    let cpath = 'img_'+Math.random()+ext;
    wx.cloud.uploadFile({
      filePath: path,
      cloudPath: cpath,
      success: (res)=>{
        console.log(res);
        // 一旦头像上传成功，可以获取访问头像的fileID
        // 带着fileID调用云函数，更新云数据库中的头像路径
        wx.cloud.callFunction({
          name: 'updateAvatar',
          data: {avatar: res.fileID}
        }).then(updateRes=>{
          console.log(updateRes);
        })
      }
    })
  },

  /** 点击登录的text后执行 */
  tapLogin(){
    if(this.data.islogin){
      return;
    }

    // 若云数据库中没有用户信息，代表第一次登录
    // 访问微信服务器，加载数据，执行注册操作
    wx.getUserProfile({
      desc: '更新会员信息',
      success: (res)=>{
        console.log(res);
        this.setData({
          islogin: true,  // 已登录状态
          avatar: res.userInfo.avatarUrl,
          nickname: res.userInfo.nickName
        })
        // 判断当前云数据库中是否已经有用户信息
        // 如果当前云数据库中已经有数据了，直接加载使用即可
        // 调用login的云函数，该云函数的功能是：登录
        // 若数据库中有已经注册的用户，则登录成功，返回用户
        // 否则返回null
        wx.cloud.callFunction({
          name: 'login'
        }).then(loginRes=>{
          console.log(loginRes);
          // 判断已经注册过
          if(loginRes.result.data.length!=0){
            // 获取用户信息，更新UI即可
            this.setData({
              islogin: true,
              avatar: loginRes.result.data[0].avatar,
              nickname: loginRes.result.data[0].nickname
            })
          }else{
            // 把从微信中拿到的用户数据，更新到自己的数据库
            // 存储在xzyy_user中
            this.saveUser(
              res.userInfo.avatarUrl,
              res.userInfo.nickName
            );
          }
        })    
      }
    })
  },
  /**
   * 将用户信息存入 xzyy_user 集合中
   * @param {string} avatar 用户头像
   * @param {string} nickname   用户昵称
   */
  saveUser(avatar, nickname){
    let db = wx.cloud.database();
    db.collection('xzyy_user').add({
      data: {avatar, nickname},
      success: (res)=>{
        console.log(res);
      }
    })
  },

  doubleclick(){
    console.log('记得双击么么哒~~');
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})